package com.es.heap;

/**
 * @author 二十
 * @since 2022/1/18 10:11 上午
 */
public abstract class AbstractMaxHeap<E extends Comparable<E>> {
    /**
     * 判空
     */
    public abstract boolean isEmpty();

    /**
     * 容量
     */
    public abstract int getSize();
    /**
     * 获取给定位置的父节点索引
     */
    public abstract int getParent(int index);
    /**
     * 获取给定位置的左子节点索引
     */
    public abstract int getLeftChild(int index);
    /**
     * 获取给定位置的右子节点索引
     */
    public abstract int getRightChild(int index);
    /**
     * 添加元素
     */
    public abstract void add(E e);
    /**
     * 查找最大元素
     */
    public abstract E findMax();
    /**
     * 删除最大元素
     */
    public abstract E deleteMax();
    /**
     * 给定一个元素替换最大元素
     */
    public abstract E replace(E e);
}
